﻿#ifndef CAMERAFACTORY_H
#define CAMERAFACTORY_H

#include "CameraCommon/CameraFactoryInterface.h"

namespace Qly {
class CAMERA_EXPORT CameraFactory:public CameraFactoryInterface
{
public:
    CameraFactory();
    ~CameraFactory() override {}
    QList<IndustryCameraInfo> availableCameras( QSet<CameraType> types ) override;
    QList<IndustryCameraInfo> availableCameras( CameraType type ) override;
    QList<IndustryCameraInfo> availableCameras() override;
    IndustryCamera * findCameraByName(QString name, QObject *parent = 0) override;
    IndustryCamera * defaultCamera(QObject *parent = 0) override;
    QString vendorName() override;
    bool release(IndustryCamera * camera) override;
private:
    QList<IndustryCameraInfo> findCameras(unsigned int nTLayerType );
};
} //namespace Qly

extern "C" __declspec(dllexport) Qly::CameraFactoryInterface * CreateInstance();
extern "C" __declspec(dllexport) void Release(Qly::CameraFactoryInterface * p);


#endif // CAMERAFACTORY_H
